import serial
import serial.tools.list_ports
import time

# 获取所有串口设备实例。
# 如果没找到串口设备，则输出：“无串口设备。”
# 如果找到串口设备，则依次输出每个设备对应的串口号和描述信息。
ports_list = list(serial.tools.list_ports.comports())
if len(ports_list) <= 0:
    print("无串口设备。")
else:
    print("可用的串口设备如下：")
    for comport in ports_list:
        print(list(comport)[0], list(comport)[1])

# 方式1：调用函数接口打开串口时传入配置参
ser = serial.Serial(port='COM4',
                    baudrate=921600,
                    timeout=5,
                    bytesize=serial.SEVENBITS,
                    parity=serial.PARITY_NONE,
                    stopbits=serial.STOPBITS_TWO)

# 判断串口是否成功打开
if ser.isOpen():
    print("打开串口成功。")
    # 输出串口号
    print(ser.name)
else:
    print("打开串口失败。")

buffer = b''
# 读取串口输入信息并输出。
while True:
    length = max(1, ser.in_waiting)
    print(length)
    data = ser.read(max(1, ser.in_waiting))
    if data:  # 如果读取结果非空，则输出
        t = time.time()
        if length == 1 and not buffer:  # just start receive
            buffer += data
            continue
        buffer += data
        print(buffer.decode('UTF-8'))
        buffer = b''

ser.close()
if ser.isOpen():  # 判断串口是否关闭
    print("串口未关闭。")
else:
    print("串口已关闭。")

print("test git push")